package com.ynkbny.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ynkbny.domain.DevicePoint;
import com.ynkbny.domain.pojo.DevicePointPaginReqVO;
import com.ynkbny.domain.pojo.DevicePointPaginResponseVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 设备点位表-数据库访问层
 *
 * @author : juzipi123
 * @date : 2023-8-2
 */
@Mapper
public interface DevicePointMapper extends BaseMapper<DevicePoint> {

    /**
     * 分页查询指定行数据
     *
     * @param queryWrapper 查询条件
     * @param page        分页对象
     * @return 对象列表
     */
    Page<DevicePointPaginResponseVO> queryAllByLimit(IPage<DevicePointPaginReqVO> page, @Param(Constants.WRAPPER) Wrapper<DevicePointPaginResponseVO> queryWrapper);

    /**
     * 统计总行数
     *
     * @param devicePoint 查询条件
     * @return 总行数
     */
    long count(DevicePointPaginReqVO devicePoint);

    /**
     * 根据 ‘企业上传数据 开始时间’ 查询 设备点位表
     *
     * @param startTime 企业上传数据 开始时间
     * @return 查询结果
     */
    List<DevicePoint> selectByStartTime(String startTime);

    /**
     * 查询 设备点位表 需要上报的 数据
     *
     * @return 查询结果
     */
    List<DevicePoint> selectByEscalation();
}